function generateTree() {
    // 生成树形结构的数据
    $.ajax({
        url:"menu/get/whole/tree",
        type:"post",
        dataType:'json',
        success:function (res) {
            if(res.result == "SUCCESS"){
                // 创建zTree的setting设置对象
                var setting = {
                    view:{
                        addDiyDom:myAddDiyDom,
                        addHoverDom:myAddHoverDom,
                        removeHoverDom: myRemoveHoverDom
                    },
                    callback:{
                        onCollapse:myCollapseExpand,
                        onExpand:myCollapseExpand
                    },
                    data:{
                        key:{
                            url:'maomao'
                        }
                    }
                };

                var zNodes = res.data;

                // 初始化树形结构
                $.fn.zTree.init($("#treeDemo"), setting, zNodes);
            }
            if (res.result == "ERROR"){
                layer.msg(res.message)
            }
        },
        error:function (res) {

        }
    })
}

// 在鼠标移入节点范围时添加按钮组
function myAddHoverDom(treeId,treeNode) {

    // 为了在需要移除span的时候能够精确定位到span 所以给span设置个id
    var spanId = treeNode.tId + "_btnGrp";

    //判断一下span是否加了，加了就不加了
    if($("#"+spanId).length > 0){
        return;
    }
    //准备各个按钮的html标签
    var addBtn = '<a id="'+treeNode.id+'" class="btn btn-info dropdown-toggle btn-xs addBtn" style="margin-left:10px;padding-top:0px;" href="#" title="添加子节点">&nbsp;&nbsp;<i class="fa fa-fw fa-plus rbg "></i></a>';
    var removeBtn = '<a id="'+treeNode.id+'" class="btn btn-info dropdown-toggle btn-xs removeBtn" style="margin-left:10px;padding-top:0px;" href="#" title="删除节点">&nbsp;&nbsp;<i class="fa fa-fw fa-times rbg "></i></a>';
    var editBtn = '<a id="'+treeNode.id+'" class="btn btn-info dropdown-toggle btn-xs editBtn" style="margin-left:10px;padding-top:0px;" href="#" title="修改权限信息">&nbsp;&nbsp;<i class="fa fa-fw fa-edit rbg "></i></a>';

    //获取当前节点的级别
    var level = treeNode.level;

    // 声明变量存储拼装好的html代码
    var btnHtml = "";


    // 说明是根节点,只能添加
    if(level == 0){
        btnHtml = addBtn;
    }

    // 是分支节点，可以添加子节点可以修改
    if(level == 1){
        btnHtml = addBtn + " " + editBtn;
        //获取当前节点的子节点
        var length = treeNode.children.length;

        // 如果没有子节点可以删除
        if(length == 0){
            btnHtml = btnHtml + "" + removeBtn;
        }
    }
    // 是叶子节点，可以修改删除
    if (level == 2){
        btnHtml = editBtn + " " + removeBtn;
    }
    // a标签id
    var anchorId = treeNode.tId + "_a";


    // 执行在a后面添加span操作
    $("#"+anchorId).after("<span id='"+spanId+"'>"+btnHtml+"</span>")
}
// 在鼠标离开节点范围时删除按钮组
function myRemoveHoverDom(treeId,treeNode) {
    var spanId = treeNode.tId + "_btnGrp";

    // 移除span
    $("#"+spanId).remove();
}
//修改默认的图标
function myAddDiyDom(treeId,treeNode) {

    // 根据id生成规则拼接出来span的id
    var spanId = treeNode.tId + "_ico";

    // 根据控制图标的span的id找到这个span
    // 删除旧的class
    $("#"+spanId).removeClass().addClass(treeNode.icon);

}
// 点击展开折叠修改图标
function myCollapseExpand(event,treeId,treeNode) {

    // 根据id生成规则拼接出来span的id
    var spanId = treeNode.tId + "_ico";

    // 根据控制图标的span的id找到这个span
    // 删除旧的class
    $("#"+spanId).removeClass().addClass(treeNode.icon);

}